package com.gtw.iterator;

import java.util.Iterator;
import java.util.Vector;

/**
 * 提供了遍历容器的方便性,容器只要管理增减元素就可以了,要遍历时交给迭代器进行
 * 迭代器类似数据库的游标,可以在容器内上下翻滚,遍历所有它需要查看的元素
 * 注意:
 *      如果是JAVA开发者,尽量不要自己写迭代器,基本java的集合类都实现了Iterator
 */
public class ConcreteIterator implements Iterator {
    private Vector vector;

    public ConcreteIterator(Vector vector) {
        this.vector = vector;
    }

    /**
     * 定义当前游标
     */
    public int cursor = 0;

    public boolean hasNext() {
        return this.cursor != vector.size();
    }

    public Object next() {
        if(this.hasNext()){
            return this.vector.get(cursor++);
        }else {
            return null;
        }
    }

    public void remove() {
        this.vector.remove(this.cursor);
    }
}
